﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Conexion;
using AccesoDatos.Objetos;
using System.Data;

namespace AccesoDatos.Manejador
{
    public class Manejador_Dias_Inhabiles
    {
        ClsConexion conexion = new ClsConexion();
        objDiasInhabiles obj = new objDiasInhabiles();
        public int id_actual;
        public DateTime fecha;
        public bool InsercionDiasInhabiles(DateTime fecha_dias_inhabiles,string descripcion)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@fecha_dias_inhabiles", fecha_dias_inhabiles.ToShortDateString()));
                lista.Add(new ClsParametros("@descripcion", descripcion));

                DataTable datos = conexion.Datatable_standart("sp_RH_Dias_Inhabiles_add", lista);
                DataRow[] array = new DataRow[datos.Rows.Count];
                datos.Rows.CopyTo(array, 0);
                object[] Info = datos.Rows[0].ItemArray;
                id_actual = int.Parse(Info[0].ToString().Trim());
                fecha = DateTime.Parse(Info[1].ToString().Trim());
                return true;
            }
            catch
            {
                return false;
            }
                    
        }

        public DataTable ConsultaDiasInhabiles(DateTime fecha_inicio,DateTime fecha_fin,string activa)
        {
            List<ClsParametros> lista = new List<ClsParametros>();
            lista.Add(new ClsParametros("@fecha_inicio", fecha_inicio.ToShortDateString()));
            lista.Add(new ClsParametros("@fecha_fin", fecha_fin.ToShortDateString()));
            lista.Add(new ClsParametros("@activa", activa));
            DataTable datos = conexion.Datatable_standart("sp_RH_Dias_Inhabiles_Consulta", lista);
            return datos;
        }

        public bool CancelarDias(DateTime fecha_dias_inhabiles)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@fecha_dias_inhabiles", fecha_dias_inhabiles.ToShortDateString()));

                bool resp = conexion.Procedure_standart("sp_RH_Dias_Inhabiles_Modificar", lista);
                return true;
            }
            catch { return false; }

        }

        public bool ModDiasDescrip(DateTime fecha_dias_inhabiles, string descripcion)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@fecha_dias_inhabiles", fecha_dias_inhabiles.ToShortDateString()));
                lista.Add(new ClsParametros("@descripcion", descripcion));
                DataTable datos = conexion.Datatable_standart("sp_RH_Dias_Inhabiles_Mod_Descripcion", lista);
                DataRow[] array = new DataRow[datos.Rows.Count];
                datos.Rows.CopyTo(array, 0);
                object[] Info = datos.Rows[0].ItemArray;
                fecha = DateTime.Parse(Info[0].ToString().Trim());
                return true;
            }
            catch {
                return false;
            }

        }

        public objDiasInhabiles ComprobacionFecha(DateTime fecha_dias_inhabiles)
        {

            List<ClsParametros> lista = new List<ClsParametros>();
            lista.Add(new ClsParametros("@fecha_dias_inhabiles", fecha_dias_inhabiles.ToShortDateString()));
            DataTable datos = conexion.Datatable_standart("sp_RH_Dias_Inhabiles_Comprobacion", lista);
            DataRow[] array = new DataRow[datos.Rows.Count];
            datos.Rows.CopyTo(array, 0);
            object[] Info = datos.Rows[0].ItemArray;
            obj.Fecha_Dia_Inhabil = DateTime.Parse(Info[0].ToString().Trim());
            return obj;

        }

        public DateTime fecha_diaInhabil(DateTime fecha_dia_inhabil)
        {
            try
            {
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@fecha_dia_inhabil", fecha_dia_inhabil.ToShortDateString()));
                DataTable datos = conexion.Datatable_standart("sp_RH_Vacaciones_Consulta_Fecha_especifica", lista);
                DataRow[] array = new DataRow[datos.Rows.Count];
                datos.Rows.CopyTo(array, 0);
                object[] Info = datos.Rows[0].ItemArray;
                obj.Fecha_Dia_Inhabil = Convert.ToDateTime(Info[0].ToString().Trim());

                return obj.Fecha_Dia_Inhabil;
            }
            catch { 
                return default(DateTime); }
        }
    }
}
